package modulo;


import grafica.linea;

import java.util.Observable;

public abstract class Dardo extends Observable  {

	private int xi;
	private int yi;
	private int Xf;
	private int Yf;
	private int rateo;	//secondi
	private int affaticamento;
	private int raggio;

	public void  setPuntoArrivo(int xArrivo,int yArrivo){
		double m=((double)(yArrivo-this.getYi()))/(xArrivo-this.getXi());
		linea l=new linea(xi,yi,xArrivo,yArrivo);
		double raggioColpo=l.lunghezza();
		if(raggioColpo>this.getRaggio()){
			double xM=(this.getRaggio()*(xArrivo-this.getXi()))/l.lunghezza();
			l.setXf((int)xM+this.getXi());
			l.setYf((int)(m*(xM)+this.getYi()));
		}
		System.out.println("RaggioColpo"+l);
		this.setXf(l.getXf());
		this.setYf(l.getYf());/*
		this.setXf(xArrivo);
		this.setYf(yArrivo);*/
	}
	/**
	 * @return the rateo
	 */
	public int getRateo() {
		return rateo;
	}
	/**
	 * @param rateo the rateo to set
	 */
	public void setRateo(int rateo) {
		this.rateo = rateo;
	}
	/**
	 * @return the raggio
	 */
	public int getRaggio() {
		return raggio;
	}
	/**
	 * @param raggio the raggio to set
	 */
	public void setRaggio(int raggio) {
		this.raggio = raggio;
	}
	/**
	 * @param rateo
	 * @param affaticamento
	 */
	public Dardo(int rateo, int affaticamento,int raggio) {
		super();
		this.rateo = rateo;
		this.affaticamento = affaticamento;
		this.raggio=raggio;
	}
	public int getAffaticamento() {
		return affaticamento;
	}
	
	public void cancellaDardo(){
		xi=0;
		yi=0;
		this.Xf=0;
		this.Yf=0;
		setChanged();
		notifyObservers();
	}
	
	/**
	 * @return the xi
	 */
	public int getXi() {
		return xi;
	}
	
	/**
	 * @return the yi
	 */
	public int getYi() {
		return yi;
	}
	
	/**
	 * @param xi the xi to set
	 */
	public void setXi(int xi) {
		this.xi = xi;
	}
	
	/**
	 * @return the xf
	 */
	public int getXf() {
		return Xf;
	}
	
	/**
	 * @param yi the yi to set
	 */
	public void setYi(int yi) {
		this.yi = yi;
	}
	
	/**
	 * @param xf the xf to set
	 */
	public void setXf(int xf) {
		Xf = xf;
	}
	/**
	 * @return the yf
	 */
	public int getYf() {
		return Yf;
	}
	/**
	 * @param yf the yf to set
	 */
	public void setYf(int yf) {
		Yf = yf;
	}
	
}
